package com.helisa;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class CheckConnection {
	private CheckConnection(){}

	/**
	 * Devuelve un string con los nombres de las interfaces a las 
	 * que el dispositivo esta conectado. Retorna null si no hay conexiones 
	 * disponibles.
	 * La actividad no debe ser null. 
	 * @param a la actividad relacionada.
	 * @return las interfaces de conexion. 
	 */
	public static String hasInternetByType(Activity a) { 
		ConnectivityManager cm = (ConnectivityManager) a.getSystemService(Context.CONNECTIVITY_SERVICE); 
		NetworkInfo[] netInfo = cm.getAllNetworkInfo();
		String c = "";
		for (NetworkInfo ni : netInfo) { 
			if (ni.getTypeName().equalsIgnoreCase("wifi")) 
				if (ni.isConnected()) 
					c+="wifi,";
				
			if (ni.getTypeName().equalsIgnoreCase("mobile")) 
				if (ni.isConnected()) 
					 c+="mobile";
		} 
		if(c.length()==0)
			return null;
		return c; 
	}
	
	/**
	 * Valida si hay conexion a internet.
	 * La actividad no debe ser null. 
	 * @param a La actividad relacionada.
	 * @return <tt>true</tt> si hay conexion a internet.
	 */
	public static boolean hasConnection( Activity a ) {
		ConnectivityManager cm = (ConnectivityManager) a.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo netInfo = cm.getActiveNetworkInfo();
		if (netInfo != null && netInfo.isConnectedOrConnecting()) {
			return true;
		}
	    return false;
	}

}
